#pragma once
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
//typedef int SLTDataType;
//typedef struct SListNode
//{
//	SLTDataType data;
//	struct SListNode* next;
//}SLTNode;Definition for singly-linked list.
typedef int SLTDataType;
typedef struct ListNode 
{
	SLTDataType data;
	struct ListNode* next;
}SLTNode;
void SLTprint(SLTNode* phead);
void SLTPushBack(SLTNode** pphead, SLTDataType x);
void SLTPopBack(SLTNode* phead);
void SLTPopFront(SLTNode** pphead);
SLTNode* SLTFind(SLTNode* phead, SLTDataType x);
void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x);
void SLTInsertAfter(SLTNode* pos, SLTDataType x);
void SLTErase(SLTNode** pphead, SLTNode* pos);
void SLTEraseAfter(SLTNode* pos);
void SListDestroy(SLTNode* pphead);
SLTNode* removeElements(SLTNode* head, int val);
SLTNode* middleNode(SLTNode* head);